import React from 'react'
import { Route, Redirect } from 'react-router-dom'
import { hasToken } from 'utils/storage'

export default class AuthRoute extends React.Component {
  render() {
    const { component: Component, ...rest } = this.props
    return (
      <Route
        // path={this.props.path}
        // component={this.props.component}
        {...rest}
        render={(props) => {
          // 动态渲染组件 会造成路由数据丢失
          // 形参props Route组件提供的对象
          // 将prop数据 继续传递给Component
          // console.log('一', props.location.pathname)
          if (hasToken()) {
            return <Component {...props} />
          }
          return (
            <Redirect
              to={{
                pathname: '/login',
                state: { from: props.location.pathname },
              }}
            />
          )
        }}
      />
    )
  }
}
// 进行权限的控制
// 如果用户登录，判断访问的是否为登录页
// 如果是登录页，则重定向到首页。如果不是登录页，则直接显示组件
// 如果用户未登录，判断访问的是登录页
// 如果是登录页，直接显示。如果不是登录页，重定向到登录页
